﻿using Adnc.Application.Shared.Dtos;
using System;
using System.Collections.Generic;
using System.Text;

namespace WYT.Sys.Application.Contracts.Dtos.Coupon
{
    /// <summary>
    /// 优惠券创建对象
    /// </summary>
    public class CouponCreationDto : IInputDto
    {
        /// <summary>
        /// 优惠券名称
        /// </summary>
        public string Name { get; set; }

        /// <summary>
        /// 使用说明
        /// </summary>
        public string Instructions { get; set; }
        /// <summary>
        /// 优惠类型(1:满减,2:抵扣券,3：折扣券)
        /// </summary>
        public int Type { get; set; }

        /// <summary>
        /// 生效方式 (1、得到优惠券立即生效，2、固定生效时间，3、配置")
        /// </summary>
        public int EffectiveType { get; set; }

        /// <summary>
        /// 固定生效开始时间
        /// </summary>
        public DateTime? StartTime { get; set; }

        /// <summary>
        /// 领取规则(1、领一次，2、每天领一次，3、无限制）
        /// </summary>
        public int ReceiveRule { get; set; }

        /// <summary>
        /// 有效开始日期（领取）
        /// </summary>
        public DateTime GetStartTime { get; set; }

        /// <summary>
        /// 有效截至日期（领取）
        /// </summary>
        public DateTime GetEndTime { get; set; }

        /// <summary>
        /// 有效期（天）
        /// </summary>
        public int Validity { get; set; }

        /// <summary>
        /// 可领取的数量
        /// </summary>
        public int MayCount { get; set; }

        /// <summary>
        /// 是否可以叠加使用
        /// </summary>
        public bool IsSuperposition { get; set; }

        /// <summary>
        /// 优惠金额或者折扣数
        /// </summary>
        public Decimal Amount { get; set; }

        /// <summary>
        /// 使用条件
        /// </summary>
        public Decimal ReachAmount { get; set; }

        /// <summary>
        /// 优惠或者折扣数类型。1、现金；2、商品（只有优惠券是满减，用于单品，使用条件是商品数量时才可用
        /// </summary>
        public int AmountType { get; set; }

        /// <summary>
        /// 使用条件类型(1：金额，2：商品数量)
        /// </summary>
        public int ReachAmountType { get; set; }

        /// <summary>
        /// 最大优惠金额
        /// </summary>
        public Decimal? MaxAmount { get; set; }

        /// <summary>
        /// 商品使用限制 1：全场;2：部分商品;3：第三方商品;4：自营商品
        /// </summary>
        public int GoodsAstrict { get; set; }

        /// <summary>
        /// 适用的商品，GoodsAstrict = 2 时需要指定适用的商品
        /// </summary>
        public long[] AvailableGoods { get; set; }
    }
}
